package com.framework.service.system;

import com.framework.common.model.response.R;
import com.framework.model.system.vo.SystemUserVo;
import java.util.List;

/**
 * @author 龘鵺
 * @version 1.0
 * @className com.framework.service.system.SystemUserVoService
 * @description 用户管理接口类
 * @datetime 2024-06-19 09:34:28
 */
public interface SystemUserService {
    /**
     * @param id 1 编号
     * @return com.framework.model.system.SystemUserVo
     * @title 根据编号查询用户管理
     * @description 根据编号查询用户管理
     * @author 龘鵺
     * @datetime 2024-06-19 09:34:28
     * @version 1.0
     */
    SystemUserVo getByIdParam(Long id);

    /**
     * @param row 1 用户管理类
     * @return com.framework.common.model.response.R
     * @title 新增用户管理
     * @description 新增用户管理
     * @author 龘鵺
     * @datetime 2024-06-19 09:34:28
     * @version 1.0
     */
    R<?> save(SystemUserVo row);

    /**
     * @param row 1 用户管理类
     * @return com.framework.common.model.response.R
     * @title 编辑用户管理
     * @description 编辑用户管理
     * @author 龘鵺
     * @datetime 2024-06-19 09:34:28
     * @version 1.0
     */
    R<?> edit(SystemUserVo row);

    /**
     * @param id 1 编号
     * @return com.framework.common.model.response.R
     * @title 删除用户管理
     * @description 删除用户管理
     * @author 龘鵺
     * @datetime 2024-06-19 09:34:28
     * @version 1.0
     */
    R<?> delete(Long id);

    /**
     * @param idList 1 编号集合
     * @return com.framework.common.model.response.R
     * @title 批量删除用户管理
     * @description 批量删除用户管理
     * @author 龘鵺
     * @datetime 2024-06-19 09:34:28
     * @version 1.0
     */
    R<?> batchDeleteList(List<Long> idList);

    /**
     * @param row 1 用户管理类
     * @return java.util.List<com.framework.model.system.SystemUserVo>
     * @title 查询用户管理集合
     * @description 查询用户管理集合
     * @author 龘鵺
     * @datetime 2024-06-19 09:34:28
     * @version 1.0
     */
    List<SystemUserVo> findByList(SystemUserVo row);

    /**
     * @param row 1 用户管理类
     * @return com.framework.common.model.response.R
     * @title 分页查询用户管理列表
     * @description 分页查询用户管理列表
     * @author 龘鵺
     * @datetime 2024-06-19 09:34:28
     * @version 1.0
     */
    R<?> findParamPageList(SystemUserVo row);

    /**
     * @param id 1 编号
     * @return com.framework.model.system.vo.SystemUserVo
     * @title 公共根据编号查询数据
     * @description 公共根据编号查询数据
     * @author 龘鵺
     * @datetime 2024-06-19 09:34:28
     */
    SystemUserVo selectByMap(Long id);

    /**
     * @param id      1 编号
     * @param account 2 帐号
     * @return com.framework.common.model.response.R
     * @title 本类后台管理查询是否存在，只是适合本身的一些方法处理。
     * @description boolean false不存在， true存在
     * @author 龘鵺
     * @datetime 2024-06-19 09:34:28
     */
    R<?> isExist(Long id, String account);

    /**
     * @param row 1 用户管理类
     * @return com.framework.common.model.response.R
     * @title 修改密码
     * @description 修改密码
     * @author 龘鵺
     * @datetime 2024-06-19 09:34:28
     */
    R<?> password(SystemUserVo row);

    /**
     * @param id 1 编号
     * @return com.framework.model.system.vo.SystemUserVo
     * @title 公共根据编号查询数据
     * @description 公共根据编号查询数据
     * @author 龘鵺
     * @datetime 2024-06-19 09:34:28
     */
    SystemUserVo selectByParam(Long id);

    /**
     * @param id 1 编号
     * @return com.framework.common.model.response.R
     * @title 根据编号查询信息
     * @description 根据编号查询信息
     * @author 龘鵺
     * @datetime 2024-06-19 09:34:28
     */
    R<?> getByIdInfo(Long id);

    /**
     * @param account 1 帐号
     * @return com.framework.model.system.vo.SystemUserVo
     * @title 登录查询
     * @description 登录查询
     * @author 龘鵺
     * @datetime 2024-06-19 09:34:28
     */
    SystemUserVo queryForLoginName(String account);

    /**
     * @return boolean
     * @title 验证用户是否为超级管理员权限
     * @description 验证用户是否为超级管理员权限
     * @author 龘鵺
     * @datetime 2024-06-19 09:34:28
     */
    boolean isAuth();

    /**
     * @param id 1 编号
     * @return com.framework.common.model.response.R
     * @title 启用|禁用，用户
     * @description 启用|禁用，用户
     * @author 龘鵺
     * @datetime 2024-06-19 09:34:28
     * @version 1.0
     */
    R<?> enable(Long id) throws Exception;

}